package com.framework.service.system;

import com.framework.common.model.response.R;
import com.framework.model.system.SystemBackstageWhiteListIp;

import java.util.List;

/**
 * @author 龘鵺
 * @version 1.0
 * @className com.framework.service.system
 * @description 系统后台白名单IP业务接口类
 * @datetime 2021-01-09 11:11:11
 */
public interface SystemBackstageWhiteListIpService {
    /**
     * @param row 1 系统后台白名单IP实体类对象
     * @return int 大于等于1成功， 0失败
     * @title 公共根据条件逻辑删除数据
     * @description 公共根据条件逻辑删除数据
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    int deleteList(SystemBackstageWhiteListIp row);

    /**
     * @param row 1 系统后台白名单IP实体类对象
     * @return long 返回主键ID大于0成功，小于等于0失败
     * @title 公共非空字段验证添加
     * @description 公共非空字段验证添加
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    int insertSelective(SystemBackstageWhiteListIp row);

    /**
     * @param row 1 系统后台白名单IP实体类对象
     * @return int 0失败，1成功
     * @title 公共根据编号非空字段验证修改
     * @description 公共根据编号非空字段验证修改
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    int updateByPrimaryKeySelective(SystemBackstageWhiteListIp row);

    /**
     * @param id 1 编号
     * @return com.framework.model.system.SystemBackstageWhiteListIp
     * @title 公共根据编号查询数据
     * @description 公共根据编号查询数据
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    SystemBackstageWhiteListIp selectByPrimaryKey(Long id);

    /**
     * @param row 1 系统后台白名单IP实体类对象
     * @return int 0不存在， 大于等于1存在
     * @title 公共根据条件查询是否重复存在
     * @description 公共根据条件查询是否重复存在
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    int isExist(SystemBackstageWhiteListIp row);

    /**
     * @param row 1 系统后台白名单IP实体类对象
     * @return java.util.List<com.framework.model.system.SystemBackstageWhiteListIp>
     * @title 公共根据条件分页查询
     * @description 公共根据条件分页查询
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    List<SystemBackstageWhiteListIp> findPageList(SystemBackstageWhiteListIp row);

    /**
     * @param row 1 系统后台白名单IP实体类对象
     * @return int 返回分页总数
     * @title 公共根据条件分页查询总数
     * @description 公共根据条件分页查询总数
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    int findPageListCount(SystemBackstageWhiteListIp row);

    /**
     * @param row 1 系统后台白名单IP实体类对象
     * @return java.util.List<com.framework.model.system.SystemBackstageWhiteListIp>
     * @title 公共根据条件查询集合
     * @description 公共根据条件查询集合
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    List<SystemBackstageWhiteListIp> findByList(SystemBackstageWhiteListIp row);

    /**
     * @param row 1 系统后台白名单IP实体类对象
     * @return com.framework.common.model.response.R
     * @title 本类后台管理添加方法
     * @description 本类后台管理添加方法
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    R<?> save(SystemBackstageWhiteListIp row);

    /**
     * @param row 1 系统后台白名单IP实体类对象
     * @return com.framework.common.model.response.R
     * @title 本类后台管理修改方法
     * @description 本类后台管理修改方法
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    R<?> edit(SystemBackstageWhiteListIp row);

    /**
     * @param idList 1 编号集合
     * @return com.framework.common.model.response.R
     * @title 本类后台管理批量逻辑删除
     * @description 本类后台管理批量逻辑删除
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    R<?> batchDeleteList(List<Long> idList);

    /**
     * @param id 1 编号
     * @return com.framework.common.model.response.R
     * @title 本类后台管理根据编号逻辑删除
     * @description 本类后台管理根据编号逻辑删除
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    R<?> delId(Long id);

    /**
     * @param id 1 编号
     * @param ip 2 IP
     * @return com.framework.common.model.response.R
     * @title 本类私有查询是否存在，只是适合本身的一些方法处理。
     * @description boolean false不存在， true存在
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    R<?> isExist(Long id, String ip);

    /**
     * @param id 1 编号
     * @return com.framework.model.system.SystemBackstageWhiteListIp
     * @title 本类根据ID查询数据信息
     * @description 本类根据ID查询数据信息
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    SystemBackstageWhiteListIp getByIdParam(Long id);

    /**
     * @param row 1 系统后台白名单IP实体类对象
     * @return com.framework.common.model.response.R
     * @title 本类后台管理根据条件分页查询系统后台白名单IP列表
     * @description 本类后台管理根据条件分页查询系统后台白名单IP列表
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    R<?> findParamPageList(SystemBackstageWhiteListIp row);

    /**
     * @param ip 1 IP
     * @return com.framework.model.system.SystemBackstageWhiteListIp
     * @title 根据IP查询是否存在
     * @description 根据IP查询是否存在
     * @author 龘鵺
     * @datetime 2020-01-09 11:11:11
     */
    SystemBackstageWhiteListIp getIp(String ip);

    /**
     * @param id 1 编号
     * @return com.framework.common.model.response.R
     * @title 根据编号查询信息
     * @description 根据编号查询信息
     * @author 龘鵺
     * @datetime 2022-01-09 11:11:11
     */
    R<?> getByIdInfo(Long id);

    /**
     * @param id 1 编号
     * @return com.framework.common.model.response.R
     * @title 启用|禁用，角色
     * @description 启用|禁用，角色
     * @author 龘鵺
     * @datetime 2024-06-19 09:34:28
     * @version 1.0
     */
    R<?> enable(Long id) throws Exception;
}
